import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
	state: {
		version: '1.0.0',
		url: 'http://127.0.0.1:8080',
		count: 1,
	},
	//相当于vue中的methods vuex中的state中的数据无法直接修改只能通过mutations和actions来实现修改
	// 在vue中通过this.$store.commit(方法名,参数)来调用 或者使用map函数
	mutations: {
		setVersion(state, version) {
			state.version = version
		},
		changeCount(state, count) {
			state.count = count
		},
	},
	//相当于异步的mutations
	// 在vue中通过this.$store.dispatch(方法名,参数).then().catch()来调用或者async await
	actions: {
		setV({ commit }, version) {
			return new Promise((resolve) => {
				commit('setVersion', version) //通过第一个参数结构拿到的commit调用mutations中的方法
				resolve()
			})
		},
	},
	modules: {}, //模块化开发 个人开发没使用过
})
